package com.atguigu.algorithm;

/**
 * @Author: shenhao
 * @CreatTime: 2024/10/30 20:43
 * @Version: 1.0
 * 给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，
 * 写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
 */
public class LeetCode704 {
    public int search(int[] nums, int target) {
        //输入的数组必须有序,而且是升序
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            // 中间值 左边, 加上右边- 左边/2,
            int mid = left + (right - left) / 2;
            //int mid = (right + left)/2; 左右相加/2也是中间值
            if (nums[mid] == target) {
                return mid;
            }else if (nums[mid] < target) {
                left = mid + 1;
            }else {
                right = mid - 1;
            }
        }
        return -1;
    }
}
